
<link rel="stylesheet" href="php-txt-db-api.css" type="text/css">

<title>FAQ (H&auml;ufig gestellte Fragen)</title>
<div align="center"> 
  <h1 align="left"> FAQ (H&auml;ufig gestellte Fragen)</h1>
  <p align="left">&nbsp;</p>
  <p align="left"><b><font size="3">Wird man einmal ein Datum speichern k&ouml;nnen 
    ? / Wie soll ich ein Datum speichern ?</font></b></p>
  <p align="left">Vielleicht kommt das mal, eber das braucht es doch eigentlich 
    gar nicht.<br>
  </p>
  <p align="left"><b>Empfohlene Variente:<br>
    </b>Du kannst entweder einen timestamp als int speichern und dann vor dem 
    anzeigen in ein datum umwandeln. <br>
    Das sortieren funktioniert dann automatisch richtig.<br>
  </p>
  <p align="left"><b>Oder:<br>
    </b>... du speicherst das datum als string (str), am besten im format yyyymmdd 
    also f&uuml;r heute w&auml;re das zB 20021101. so funktioniert das sortieren 
    ebenfalls richtig (da zuerst jahr dann monat dann tag kommt). auch hier musst 
    du dann halt den string form dem anzeigen umwandeln.<br>
    auch k&ouml;nntest du ein format wie z.B. yyyy-mm-dd nehmen, was vielleicht 
    sogar einfach zum parsen ist.</p>
  <p align="left">Wenn du mit dem gespeicherten datum keine operationen vornehmen 
    musst, z.B. + 1 tag, dann kannst du auch einfach den r&uuml;ckgabewert von 
    z.B. date(&quot;D M j H:i:s Y&quot;) als string speichern und diesen unver&auml;ndert 
    anzeigen und sp&auml;ter &uuml;berschreiben. Der nachteil ist hier einfach 
    das ein sortieren nach dem datumsfeld nicht richtig funktionieren w&uuml;rde.</p>
  <p align="left">&nbsp;</p>
  <p align="left"><b><font size="3">Ich verstehe das mit den 3 Zeilen wo die Spalteninformationen 
    gespeichert werden nicht</font></b></p>
  <div align="left">
    <div align="left">
      <div align="left"> 
        <p>Um eins mal gleich vorne weg zu nehmen: Wenn man eine Tabelle mit CREATE 
          TABLE erstellt, braucht man sich nicht darum zu k&uuml;mmern.<br>
          Hat man eine Tabelle jedoch nocht mit einer Version vor 0.1.5-Alpha-01 
          erstellt (auch mit CREATE TABLE) muss man diese nun<br>
          SELBST, also VON HAND anpassen.</p>
        <p>Die tabellen werden ja bekanntlich in text files gespeichert. Fr&uuml;her 
          war es so das die oberen beiden zeilen, also die ersten 2, noch keine 
          daten enthielten, <br>
          sondern informationen &uuml;ber die spalten der tabelle. Die erste Zeile 
          enth&auml;lt die spaltennamen. F&uuml;r eine personen-tabelle k&ouml;nnte 
          das z.B. </p>
        <pre>name#vorname#alter </pre>
        <p>sein. <br>
          die zweite zeile enth&auml;lt den datentyp dieser spalten. z.B. </p>
        <pre>str#str#int </pre>
        <p>jetzt, in den neueren versionen ist noch eine dritte zeile hinzugekommen 
          die noch informationen &uuml;ber die spalten der tabelle speichert,<br>
          und zwar die Standardwerte. Wenn man ein INSERT macht, und dabei einige 
          spalten nicht angibt, wird anstatt nichts, der entsprechende<br>
          Wert der 3. Zeile eingef&uuml;gt. Diese 3. Zeile k&ouml;nnte z.B. so 
          aussehen: </p>
        <pre>meier#hans#40 </pre>
        <p>So w&uuml;rde nun also die leere tabelle, ohne daten aussehen: <br>
        </p>
        <pre>name#vorname#alter
str#str#int<br>meier#hans#40 </pre>
        <p>Denke daran das in den fr&uuml;heren Versionen (vor 0.1.5-Alpha-01) 
          die 3. Zeile bereits daten enthalten durfte. <br>
          Das ist jetzt aber seit 0.1.5-Alpha-01 nicht mehr so. Wenn du eine alte 
          Tabelle weiterverwenden willst, <br>
          musst du von Hand (also mit einem Texteditor) schnell eine 3. Zeile 
          einf&uuml;gen. <br>
          Ums dir einfach zu machen kannnst du einfach gleichviele # machen wie 
          die zeile &uuml;berhalb. Also f&uuml;r mein beispiel w&auml;re das: 
          <br>
        </p>
        <pre>name#vorname#alter 
str#str#int 
## </pre>
        <p>nun sind all die Standardwerte einfach &quot;nichts&quot;, also ein 
          leerer string. </p>
        <p>aber zur&uuml;ck zum Beispiel mit richtigen Standardwerten:</p>
        <pre>name#vorname#alter 
str#str#int 
meier#hans#40 </pre>
        <p>Wenn du nun folgendes Statement ausf&uuml;hrst: </p>
        <pre>INSERT into personen (vorname,alter) VALUES ('john',34); </pre>
        <p>wie du siehst wurde f&uuml;r die soakte name kein wert angegeben, und 
          deshalbt f&uuml;gt er nun den standardwert ein, also sie die tabelle 
          <br>
          nachher so aus: <br>
        </p>
        <pre>name#vorname#alter 
str#str#int 
meier#hans#40 
meier#john#34 </pre>
        <p>Du siehst, da die Spalte name im INSERT Statement nicht angegeben wurde, 
          wurde f&uuml;r diese Spalte der Standardwert &quot;meier&quot; <br>
          &uuml;bernommen. Diese tabelle hat nun genau EINEN Datensatz drin. <br>
          Auf den ersten blick k&ouml;nnte man vielleicht meinen es sind 2! <br>
          Es ist aber nur einer, denn die dritte zeile enth&auml;lt ja die Standardwerte, 
          und die kann unter Umst&auml;nden einem richtigen Datensatz sehr gleichen. 
        </p>
        <p></p>
      </div>
      
    </div>
  </div>
</div>
